﻿using Kavaa.Core.Tracing;
using Kavaa.Modules.PortailMedical.Entity;
using Kavaa.Modules.PortailMedical.Interface;
using System;
using System.Collections.Generic;
namespace Kavaa.Modules.PortailMedical.Services
{
    /// <summary>
    /// Implémentation du service
    /// </summary>
    public class PortailMedical : IPortailMedical
    {
        #region ITraceable Members
        /// <summary>
        /// variable priée de support pour la propriété TraceInfo, pour la fonction de tracing et 
        /// d'instrumentation de l'application
        /// </summary>

        [ThreadStatic()]
        private static TraceInfo traceInfo;
        public static TraceInfo TraceInfo
        {
            get
            {
                if (traceInfo == null)
                    traceInfo = new TraceInfo(typeof(PortailMedical));
                return traceInfo;
            }
        }
        #endregion

        /// <summary>
        /// Classe d'implémentation
        /// </summary>
        /// <param name="acteId"></param>
        /// <param name="villeId"></param>
        /// <returns></returns>
        //public Entity.Cliniques GetCliniquesByActeByVille(int acteId, int villeId)
        //{
        //    TraceInfo.WriteVerbose(String.Format("Appel de la méthode {0}, de la classe {1} de l'espace de nom {2}", "GetCliniquesByActeByVille", "PortailMedical", "Kavaa.Modules.PortailMedical.Services"));
        //    Cliniques cliniques = Kavaa.Modules.PortailMedical.Repository.PortailMedical.GetCliniquesByActeByVille(acteId, villeId);
        //    TraceInfo.WriteVerbose(String.Format("Fin de l'appel de la méthode {0}, de la classe {1} de l'espace de nom {2}", "GetCliniquesByActeByVille", "PortailMedical", "Kavaa.Modules.PortailMedical.Services"));
        //    return cliniques;
        //}


        public void AddInternaute(Internaute Internaute)
        {
            Kavaa.Modules.PortailMedical.Repository.PortailMedical.AddInternaute(Internaute);
        }
     

        public Nomenclatures GetNomenclatures()
        {
            return Kavaa.Modules.PortailMedical.Repository.PortailMedical.GetNomenclatures();

        }
        
        public Actes GetActes()
        {

            return Kavaa.Modules.PortailMedical.Repository.PortailMedical.GetActes();
        }

        public Actes GetActesByClinique(int idclinique)
        {

            return Kavaa.Modules.PortailMedical.Repository.PortailMedical.GetActesByClinique(idclinique);
        }
        public Mutuelles GetMutuelles()
        {

            return Kavaa.Modules.PortailMedical.Repository.PortailMedical.GetMutuelles();
        }
        public Villes GetVilles()
        {
            return Kavaa.Modules.PortailMedical.Repository.PortailMedical.GetVilles();
        }
        public Ressources GetRessources()
        {
            return Kavaa.Modules.PortailMedical.Repository.PortailMedical.GetRessources();
        }
        public Utilisateur GetUserConnecte(String login, String password)
        {
            return Kavaa.Modules.PortailMedical.Repository.PortailMedical.GetUserConnecte(login, password);

        }
        public String GetTypeUserConnecte(int ActeurId)
        {
            return Kavaa.Modules.PortailMedical.Repository.PortailMedical.GetTypeUserConnecte(ActeurId);

        }


        //Modifier un utilisateur

        public void UpdateUtilisateur(int Iduser, string Name, string Prenom, string Fonction, string Tel, string Email)
        {
            Kavaa.Modules.PortailMedical.Repository.PortailMedical.UpdateUtilisateur(Iduser,Name,Prenom,Fonction,Tel,Email);
        }
        public void DeleteUtilisateur(int UserId)
        {
            Kavaa.Modules.PortailMedical.Repository.PortailMedical.DeleteUtilisateur(UserId);
        }
        public Utilisateurs GetUtilisateurs(int ActeurId)
        {
            return Kavaa.Modules.PortailMedical.Repository.PortailMedical.GetUtilisateurs(ActeurId);
        }
        public int AddUtilisateur(Utilisateur user, int IdActeurConnecte)
        {
            return Kavaa.Modules.PortailMedical.Repository.PortailMedical.AddUtilisateur(user, IdActeurConnecte);
        }
        public Utilisateur GetUserById(int IdUser)
        {
            return Kavaa.Modules.PortailMedical.Repository.PortailMedical.GetUserById(IdUser);

        }
        public Specialites GetSpecialites()
        {
            return Kavaa.Modules.PortailMedical.Repository.PortailMedical.GetSpecialites();
        }
        public Actes GetActesSpecialite(int id_specialite)
        {
            return Kavaa.Modules.PortailMedical.Repository.PortailMedical.GetActesSpecialite(id_specialite);
        }
        public Actes GetActesCategorie(int idcategorie)
        {
            return Kavaa.Modules.PortailMedical.Repository.PortailMedical.GetActesCategorie(idcategorie);
        }

        public void ActiverCompte(int Iduser)
        {
            Kavaa.Modules.PortailMedical.Repository.PortailMedical.ActiverCompte(Iduser);
        }
        public void DesactiverCompte(int Iduser)
        {
            Kavaa.Modules.PortailMedical.Repository.PortailMedical.DesactiverCompte(Iduser);
        }

    }
}
